#include <head.h>

void sighandler_t(int sig, siginfo_t *info, void *ucontext)
{
    printf("你发送的信号是 %d \n" , sig);

    struct passwd * u_name;
    u_name = getpwuid(info->si_uid);
    
    printf("用户 %d  %s 的进程 PID %u发送来的信息\n"  , info->si_uid , u_name->pw_name , info->si_pid);
    exit(1);
}
int main(int argc, char const *argv[])
{
    struct sigaction my_sig_str;

    // 这个结构体在使用的时候  需要 清空
    memset(&my_sig_str , 0 , sizeof(my_sig_str));

    // 注册
    my_sig_str.sa_sigaction = sighandler_t;
    my_sig_str.sa_flags = SA_SIGINFO;

    sigaction( SIGINT , &my_sig_str ,  NULL);

    // 执行其他程序
    while (1)
    {
        sleep(1);
    }
    
    return 0;
}



